package com.zs.blog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zs.blog.model.dto.RoleEditDTO;
import com.zs.blog.model.dto.RoleEditStatusDTO;
import com.zs.blog.model.dto.RoleSearchDTO;
import com.zs.blog.model.entity.Role;
import com.zs.blog.model.vo.PageInfoVO;
import com.zs.blog.model.vo.RoleListVO;
import com.zs.blog.model.vo.UserListVO;

/**
 * @Title: IRoleService
 * @Author zs
 * @Package com.zs.blog.service
 * @Date 2025/5/18 17:55
 * @description: 角色服务层接口
 */
public interface IRoleService extends IService<Role> {
    /**
     * 获取分页的角色列表信息
     *
     * @param pageNum  页码
     * @param pageSize 每页数据量
     * @return 分页的角色列表信息
     */
    PageInfoVO<RoleListVO> listRoleWithPagination(Integer pageNum, Integer pageSize);

    /**
     * 新增角色
     *
     * @param roleEditDTO 新增的角色信息
     */
    void addRole(RoleEditDTO roleEditDTO);

    /**
     * 修改角色
     *
     * @param roleEditDTO 修改的角色信息
     */
    void updateRole(RoleEditDTO roleEditDTO);

    /**
     * 更新角色禁用启用状态
     *
     * @param roleEditStatusDTO 要修改角色的状态信息
     */
    void updateRoleStatus(RoleEditStatusDTO roleEditStatusDTO);

    /**
     * 根据搜索条件查询分页的角色列表
     * @param roleSearchDTO 角色搜索条件实体类
     * @return 分页的角色列表
     */
    PageInfoVO<RoleListVO> listRoleBySearchCondition(RoleSearchDTO roleSearchDTO);
}
